package com.xuanmiao.smsback.service.email;

import com.xuanmiao.smsback.common.utils.AliyunEmailUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
 * 邮件发送
 * @Author: wangxl
 * @Date: 2019/3/27 16:28
 */
@Component("aliyunEmailServiceImpl")
@Slf4j
public class AliyunEmailServiceImpl implements MailService{

    @Autowired
    private AliyunEmailUtil aliyunEmailUtil;

    /**
     * 发送一封简单的邮件
     * @param to 发送邮件地址
     * @param subject
     * @param content
     */
    @Override
    public void sendSimpleMail(String to, String subject, String content) {

        try {
            aliyunEmailUtil.sendSingleEmail(to,subject,content);
            log.info("简单邮件已经发送。");
        } catch (Exception e) {
            log.error("发送简单邮件时发生异常！", e);
        }

    }

    @Override
    public void sendHtmlMail(String to, String subject, String content) {

        try {
            aliyunEmailUtil.sendSingleEmail(to,subject,content);
        } catch (Exception e) {
            e.printStackTrace();
            log.info("发送html邮件失败！");
        }
    }

    @Override
    public void sendAttachemntMail(String to, String subject, String content, String filePath) {
        throw new UnsupportedOperationException();
//        MimeMessage message = mailSender.createMimeMessage();
//
//        try {
//            MimeMessageHelper helper = new MimeMessageHelper(message, true);
//            helper.setFrom(from);
//            helper.setTo(to);
//            helper.setSubject(subject);
//            helper.setText(content,true);
//
//            FileSystemResource file = new FileSystemResource(new File(filePath));
//            String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
//            helper.addAttachment(fileName,file);
//
//            mailSender.send(message);
//
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.info("发送带附件邮件失败！");
//        }
    }

    @Override
    public void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId) {
        throw new UnsupportedOperationException();
    }

}
